home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 July: Mac OS SDK / Dev.CD Jul 00 SDK2.toast / Development Kits / Hardware / PowerManager DDK 1.0f1 / Interfaces&Libraries / Interfaces / DriverSynchronization.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-10-08  |  3.3 KB  |  166 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        DriverSynchronization.h
  3.  
  4.      Contains:    Driver Synchronization Interfaces.
  5.  
  6.      Version:    MacOS 8
  7.  
  8.      DRI:        Matthew Nelson
  9.  
  10.      Copyright:    © 1985-1999 by Apple Computer, Inc., all rights reserved
  11.  
  12.      Warning:    *** APPLE INTERNAL USE ONLY ***
  13.                  This file may contain unreleased API's
  14.  
  15.      BuildInfo:    Built by:            Scott Johnson
  16.                  On:                    10/8/99 11:26 AM
  17.                  With Interfacer:    3.0d13   (MPW PowerPC)
  18.                  From:                DriverSynchronization.i
  19.                      Revision:        11
  20.                      Dated:            4/8/99
  21.                      Last change by:    NG
  22.                      Last comment:    Add all the synchronization routines to CarbonLib_10.
  23.  
  24.      Bugs:        Report bugs to Radar component "System Interfaces", "Latest"
  25.                  List the version information (from above) in the Problem Description.
  26.  
  27. */
  28. #ifndef __DRIVERSYNCHRONIZATION__
  29. #define __DRIVERSYNCHRONIZATION__
  30.  
  31. #ifndef __CONDITIONALMACROS__
  32. #include <ConditionalMacros.h>
  33. #endif
  34.  
  35. #ifndef __MACTYPES__
  36. #include <MacTypes.h>
  37. #endif
  38.  
  39.  
  40.  
  41.  
  42. #if PRAGMA_ONCE
  43. #pragma once
  44. #endif
  45.  
  46. #ifdef __cplusplus
  47. extern "C" {
  48. #endif
  49.  
  50. #if PRAGMA_IMPORT
  51. #pragma import on
  52. #endif
  53.  
  54. #if PRAGMA_STRUCT_ALIGN
  55.     #pragma options align=mac68k
  56. #elif PRAGMA_STRUCT_PACKPUSH
  57.     #pragma pack(push, 2)
  58. #elif PRAGMA_STRUCT_PACK
  59.     #pragma pack(2)
  60. #endif
  61.  
  62. EXTERN_API_C( void )
  63. SynchronizeIO                    (void)                                                        ONEWORDINLINE(0x4E71);
  64.  
  65. EXTERN_API_C( Boolean )
  66. CompareAndSwap                    (UInt32                 oldVvalue,
  67.                                  UInt32                 newValue,
  68.                                  UInt32 *                OldValueAdr);
  69.  
  70. EXTERN_API_C( Boolean )
  71. TestAndClear                    (UInt32                 bit,
  72.                                  UInt8 *                startAddress);
  73.  
  74. EXTERN_API_C( Boolean )
  75. TestAndSet                        (UInt32                 bit,
  76.                                  UInt8 *                startAddress);
  77.  
  78. EXTERN_API_C( SInt8 )
  79. IncrementAtomic8                (SInt8 *                value);
  80.  
  81. EXTERN_API_C( SInt8 )
  82. DecrementAtomic8                (SInt8 *                value);
  83.  
  84. EXTERN_API_C( SInt8 )
  85. AddAtomic8                        (SInt32                 amount,
  86.                                  SInt8 *                value);
  87.  
  88. EXTERN_API_C( UInt8 )
  89. BitAndAtomic8                    (UInt32                 mask,
  90.                                  UInt8 *                value);
  91.  
  92. EXTERN_API_C( UInt8 )
  93. BitOrAtomic8                    (UInt32                 mask,
  94.                                  UInt8 *                value);
  95.  
  96. EXTERN_API_C( UInt8 )
  97. BitXorAtomic8                    (UInt32                 mask,
  98.                                  UInt8 *                value);
  99.  
  100. EXTERN_API_C( SInt16 )
  101. IncrementAtomic16                (SInt16 *                value);
  102.  
  103. EXTERN_API_C( SInt16 )
  104. DecrementAtomic16                (SInt16 *                value);
  105.  
  106. EXTERN_API_C( SInt16 )
  107. AddAtomic16                        (SInt32                 amount,
  108.                                  SInt16 *                value);
  109.  
  110. EXTERN_API_C( UInt16 )
  111. BitAndAtomic16                    (UInt32                 mask,
  112.                                  UInt16 *                value);
  113.  
  114. EXTERN_API_C( UInt16 )
  115. BitOrAtomic16                    (UInt32                 mask,
  116.                                  UInt16 *                value);
  117.  
  118. EXTERN_API_C( UInt16 )
  119. BitXorAtomic16                    (UInt32                 mask,
  120.                                  UInt16 *                value);
  121.  
  122. EXTERN_API_C( SInt32 )
  123. IncrementAtomic                    (SInt32 *                value);
  124.  
  125. EXTERN_API_C( SInt32 )
  126. DecrementAtomic                    (SInt32 *                value);
  127.  
  128. EXTERN_API_C( SInt32 )
  129. AddAtomic                        (SInt32                 amount,
  130.                                  SInt32 *                value);
  131.  
  132. EXTERN_API_C( UInt32 )
  133. BitAndAtomic                    (UInt32                 mask,
  134.                                  UInt32 *                value);
  135.  
  136. EXTERN_API_C( UInt32 )
  137. BitOrAtomic                        (UInt32                 mask,
  138.                                  UInt32 *                value);
  139.  
  140. EXTERN_API_C( UInt32 )
  141. BitXorAtomic                    (UInt32                 mask,
  142.                                  UInt32 *                value);
  143.  
  144.  
  145.  
  146. #if PRAGMA_STRUCT_ALIGN
  147.     #pragma options align=reset
  148. #elif PRAGMA_STRUCT_PACKPUSH
  149.     #pragma pack(pop)
  150. #elif PRAGMA_STRUCT_PACK
  151.     #pragma pack()
  152. #endif
  153.  
  154. #ifdef PRAGMA_IMPORT_OFF
  155. #pragma import off
  156. #elif PRAGMA_IMPORT
  157. #pragma import reset
  158. #endif
  159.  
  160. #ifdef __cplusplus
  161. }
  162. #endif
  163.  
  164. #endif /* __DRIVERSYNCHRONIZATION__ */
  165.  
  166.